package com.raft.kvstore.message;

import java.io.Serializable;

import com.raft.core.node.NodeId;

/**重定向响应
 * @author zhangsulei
 *
 */
public class Redirect implements Serializable {

    /**
	 *
	 */
	private static final long serialVersionUID = 4229066564223722426L;
	private final String leaderId;

    public Redirect(NodeId leaderId) {
        this(leaderId != null ? leaderId.getValue() : null);
    }

    public Redirect(String leaderId) {
        this.leaderId = leaderId;
    }

    /**获取leaderId，可能是null，因为在集群刚启动时，leader还没有选出，此时客户端可以随机选择剩下的节点中的一个，或者重试
     * @return
     */
    public String getLeaderId() {
        return leaderId;
    }

    @Override
    public String toString() {
        return "Redirect{" + "leaderId=" + leaderId + "}";
    }

}
